
//////////////////////////////////////////////////////////////////////
#ifndef _MODULE_MANAGER_H_
#define _MODULE_MANAGER_H_

#include "module/IModule.h"
#include <map>
namespace KCore
{
	class IModule;
	class _KExport ModuleManager
	{
	public:
		typedef std::map<std::string,IModule* > ModuleMap;

		void add(IModule* p){_modules[p->getName()] = p;}
		void remove(const char* name)
		{
			_modules.erase(name);
		}
		IModule* getModule(const char* name)
		{
			ModuleMap::iterator it = _modules.find(name);
			if(it!=_modules.end())
				return it->second;
			return 0;
		}
	private:
		ModuleMap _modules;
	};
};

#endif

